fix: 恢复 master CI 全绿——ftxui gitlink 同步 + verify_package_contract 两处 #35 引入缺陷 - #38
Merged
Merged
Conversation
probe_desktop() 的 TOCTOU 竞态:Popen 后第一次 poll() 落在进程真正退出前 的窗口内返回 None,立即 exit 0 的桩被误判为 'alive after launch'(pass), 负向用例期望 exit 1 却得 0(desktop immediate exit: expected exit 1, got 0)。 改为轮询等满整个 launch_timeout 窗口:窗口内任一时刻退出(含 exit 0)判 fail,活满窗口才判 pass,消除竞态(该 flake 概率性出现,曾本地 5/5 复现)。 verify_package_test.sh darwin app bundle 用例的 seed 复制嵌套:mkdir -p 已 创建 seed 目标目录后 cp -R src dst 会把源复制成 dst/seed(seed/seed/...), 与 assets/seed 比对报 seed bundle unexpected。改为 cp -R src/. dst/ 填充。 两处均为 PR #35(feat/verify-package-skill)合入 master 后引入的失败,已 在 master 基线(8823313c)本地复现;本提交在纯 master 基础上修复并连跑 verify_package_test.sh 5/5 通过。
…HoverMotion) master 经 #36 合入 0b97e49(TUI 超链接增强 5.1-5.3)后,src/main.cpp 调用了 ftxui::App::EnableMouseHoverMotion / EnableSynchronizedOutput 等新 API,但 external/ftxui 的 gitlink 仍停留在 658c942c——该版本 ftxui 无 EnableMouseHoverMotion 成员,导致 linux-x64 CI 在 Build CLI and test binary 步骤失败(error: class ftxui::App has no member named EnableMouseHoverMotion), master 处于构建红态(Merge #36 run 33653685659 同一步失败,为 pre-existing)。 前移至 f98588b4(FTXUI PR #2 hover motion,已确认合入 shaohaozhi286/FTXUI main,任意机器 clone 可及;与 #37 分支 ae67486 指向一致)。
This was referenced Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
背景
master 当前 CI 持续红,实际存在 三层 独立的 pre-existing 失败(均非本 PR 引入,但有证据链):
Build CLI and test binary0b97e49b(TUI 超链接增强 5.1–5.3)后src/main.cpp调用ftxui::App::EnableMouseHoverMotion,但external/ftxuigitlink 仍停658c942c(该版本无此成员)→ 编译失败Run ctest→ seed bundle unexpectedcp -R src dst复制到已存在目录变seed/seed/...Run ctest→ desktop immediate exitprobe_desktop()TOCTOU:首 poll 落在进程退出前窗口返回 None →exit 0桩被误判 alive(pass),负向用例期望 1 得 0修复内容(3 commits / 6 文件)
bbe73202:external/ftxuigitlink658c942c→f98588b4(FTXUI PR Fix submodule ref and workflow branch trigger for CI #2 hover motion,已确认合入 shaohaozhi286/FTXUI main,任意机器 clone 可及;与 chore(submodule): 前移 external/ftxui 至 f98588b4(FTXUI PR #2 hover motion) #37 分支ae67486c指向一致)。修复 ① 构建红。3521b1d9(部分):tests/scripts/verify_package_test.shdarwin flowcp -R seed→cp -R seed/. seed/(填充式复制)。修复 ②。3521b1d9(部分):4×verify_package.pyprobe_desktop()由"首 poll None 即判 alive"改为"轮询等满整个launch_timeout窗口,窗口内退出(含 exit 0)判 fail、活满才 pass"。修复 ③(消除 TOCTOU)。本地验证(纯 master 基线 8823313)
verify_package_test.sh5/5 失败(seed bundle unexpected 短路 + desktop 竞态)。ae67486c完全一致;f98588b4 含EnableMouseHoverMotion(app.hpp/app.cpp),658c942c不含——构建失败的根因即此。影响
verify_package_contractcheck 同步消红。注意
external/ftxui目标 commitf98588b4已确认是上游 shaohaozhi286/FTXUI main 的历史 commit(非孤儿),子模块任何机器 clone 可正常获取。